Command-line interface

Currently, the emulator runs through a terminal, and opens an output window.

You can associate the executable with N64 ROM files to easily open them.

You can also drag and drop a file into the executable to run it.

DotN64.Desktop.exe [Options] [ROM image]

Arguments

Name Description
ROM image Opens the file or .zip archive as a game cartridge.

ROM image

The ROM must be in big-endian. A .zip file containing the ROM can also be provided.

Options

Name Arguments Description
--ipl file Loads the PIF's boot ROM into the machine.
--debug, -d None. Starts the debugger.
--update, -u action (optional) Updates the program.
--repair, -r None. Repairs the installation by redownloading all files.
--help, -h None. Shows this help.
--no-video None. Disables the video output.
--borderless None. Hides the border decorations from the window.
--fullscreen None. Enters full screen mode.
--info file Displays header information for a game.
--audio-latency time Overrides the audio buffer size (in milliseconds).

ipl

The IPL is the boot ROM the N64's CPU boots from. It is located inside the PIF (peripheral interface) chip.

The code executed initialises various registers, and transfers control to the boot device the PIF detected on startup (either a cartridge, where its own IPL is copied to the RSP's memory, or an expansion device such as the 64DD which also provides its IPL stage).

This ROM also determines the region the console was manufactured for by writing a constant into a register.

update

  • action (optional): The action to perform.
    • check, c: Checks for a new update.
    • list, l: Lists the release streams available for download.
    • stream, s (default: (current)): Downloads an update from the specified release stream.

Tip

Add -u - to a shortcut/script for the emulator to automatically check and update itself on launch.

Usually, no program restart is required, so this is a seamless operation.

info

Displays the cartridge header information for a given file.

Example

Image name: SUPER MARIO 64
ID: NSMP
Version: 1.0
Release: OS 2.4F
Media format: Cartridge
Region: Europe
Size: 8 MB
CRC: 0xA03CF036BCC1C5D2
Boot address: 0x80241800
Clock rate: 15

audio-latency

This parameter overrides the audio buffer size, which defaults to the size of buffers games send to the hardware.

This option will keep telling the software that the audio buffer is starved until there is at least milliseconds' worth of audio data buffered.

If sound becomes choppy, try to increase this value; however, it comes at the cost of added latency/desynchronisation with the video feed.

Note

Games may differ in how much they fill the audio buffer at a time, so this parameter should be bumped to satisfy the worst cases.

Further, the audio stack of your hardware and operating system may be more or less efficient than others, so tweak this value as needed.

For instance, on my system with a given ROM, I can lower the latency to 23 ms on Linux with the PulseAudio server, while Windows requires 90 ms.

Controls

Here is the default keyboard layout:

Key Action
Esc Stops emulation.
Pause/Break Invokes the debugger.
F Toggles fullscreen.
R Reset button.
Numpad - Ejects the cartridge.
W Stick ↑.
S Stick ↓.
A Stick ←.
D Stick →.
A button.
B button.
Left Ctrl Z trigger.
Right Ctrl L trigger.
Numpad 0 R trigger.
Enter START button.
Numpad 8 C ↑.
Numpad 2 C ↓.
Numpad 4 C ←.
Numpad 6 C →.
Y D-Pad ↑.
H D-Pad ↓.
G D-Pad ←.
J D-Pad →.